package com.ygqh.baby.service;

import com.wdt.api.exception.WdtException;
import com.wdt.api.request.StockQueryRequest;
import com.wdt.api.response.StockQueryResponse;

import java.util.Date;

/**
 * @author: sunshuo
 * @date: 2019/2/27 14:13
 */
public interface WdtQybStockService {


    StockQueryResponse stockQuery(StockQueryRequest queryRequest) throws WdtException;

    /**
     * 默认科捷仓库
     *
     * @param skuCode 商品编码
     * @return StockQueryResponse
     * @throws WdtException 旺店通异常
     */
    StockQueryResponse stockQuery(String skuCode) throws WdtException;

    StockQueryResponse stockQuery(String skuCode, String... warehouseNo) throws WdtException;

    /**
     * 代表仓库所有属性的唯一编码，用于仓库区分，ERP内支持自定义（ERP仓库界面设置），传此参数不传开始和结束时间，默认时间区间从请求时间前推一小时返回数据；
     * 传此参数并且传开始和结束时间，按照传参的时间区间返回数据；(不支持一次推送多个仓库编号)
     * 不传此参数则返回ERP所有仓库中符合传参条件的数据
     *
     * @param startTime    开始时间
     * @param endTime      结束时间
     * @param warehouseNos 仓库编号 这里的多仓查询是在我们系统自己实现
     * @return WdtResponse
     * @throws WdtException 旺店通异常
     */
    StockQueryResponse stockQuery(Date startTime, Date endTime, String... warehouseNos) throws WdtException;

    /**
     * 默认为科捷仓
     *
     * @param startTime 开始时间
     * @param endTime   结束时间
     * @return WdtResponse
     * @throws WdtException 旺店通异常
     */
    StockQueryResponse stockQuery(Date startTime, Date endTime) throws WdtException;

}
